Page({
  data: {
    hasPhone: false,
    courses: [
      {
        id: 'shenmian',
        name: '2026年广东省面试课程',
        description: '省考面试课程报名通道',
        icon: '📝',
        status: '进行中',
        statusColor: '#4CAF50'
      },
      // {
      //   id: 'shengkao',
      //   name: '省考课程',
      //   description: '省考课程报名通道',
      //   icon: '📋',
      //   status: '正在报名中',
      //   statusColor: '#4CAF50'
      // },
    ]
  },

  onLoad() {
    console.log('首页加载')
    this.showDisclaimerOnce()
  },

  onShow() {
    // 检查是否已有手机号授权（根据本地存储标记或手机号）
    const phone = wx.getStorageSync('phone')
    const hasPhoneFlag = !!phone || !!wx.getStorageSync('hasPhone')
    if (hasPhoneFlag !== this.data.hasPhone) {
      this.setData({ hasPhone: hasPhoneFlag })
    }
  },

  // 手机号授权回调
  getPhoneNumber(e) {
    console.log('手机号授权回调:', e)
    
    const courseId = e.currentTarget.dataset.courseId
    const course = this.data.courses.find(c => c.id === courseId)
    
    if (e.detail.errMsg === 'getPhoneNumber:ok') {
      // 授权成功
      // e.detail.code 可以用于后端换取手机号
      console.log('点击课程:', course.name)
      console.log('授权码:', e.detail.code)
      
      wx.showToast({
        title: '授权成功',
        icon: 'success',
        duration: 1500
      })
      
      // 这里可以调用后端接口，使用 e.detail.code 换取手机号
      // 后端接口示例：
      // wx.request({
      //   url: 'https://your-api.com/getPhoneNumber',
      //   method: 'POST',
      //   data: {
      //     code: e.detail.code,
      //     courseId: courseId
      //   },
      //   success: (res) => {
      //     // 保存手机号到本地存储
      //     if (res.data.phone) {
      //       wx.setStorageSync('phone', res.data.phone)
      //     }
      //     // 获取手机号成功后，跳转到岗位保护查询页
      //     setTimeout(() => {
      //       wx.navigateTo({
      //         url: `/pages/query/index?courseId=${courseId}`
      //       })
      //     }, 500)
      //   },
      //   fail: (err) => {
      //     console.error('获取手机号失败:', err)
      //     // 即使获取手机号失败，也跳转到查询页
      //     setTimeout(() => {
      //       wx.navigateTo({
      //         url: `/pages/query/index?courseId=${courseId}`
      //       })
      //     }, 500)
      //   }
      // })
      
      // 标记已授权并记录选择的课程，便于后续页面使用
      wx.setStorageSync('hasPhone', true)
      wx.setStorageSync('selectedCourseId', courseId)

      // 暂时模拟跳转到岗位保护查询页
      setTimeout(() => {
        wx.navigateTo({
          url: `/pages/query/index?courseId=${courseId}`
        })
      }, 1500)
    } else {
      // 用户拒绝授权，引导前往设置打开权限
      wx.showModal({
        title: '需要授权',
        content: '需要获取您的手机号以继续报名流程。您可以稍后在设置里开启授权。',
        confirmText: '去设置',
        cancelText: '稍后',
        success: (res) => {
          if (res.confirm) {
            wx.openSetting({})
          }
        }
      })
    }
  },

  // 已授权时点击课程卡片
  onAuthorizedCourseTap(e) {
    const courseId = e.currentTarget.dataset.courseId
    wx.setStorageSync('selectedCourseId', courseId)
    // 查询报名状态后进行跳转
    this.checkApplicationStatus(courseId)
  },

  // 查询用户报名状态并跳转
  checkApplicationStatus(courseId) {
    const phone = wx.getStorageSync('phone') || ''
    const api = 'https://your-api.com/app/status'

    wx.showLoading({ title: '加载中...', mask: true })

    wx.request({
      url: api,
      method: 'GET',
      data: { phone, courseId },
      success: (res) => {
        let status = 'not_started'
        if (res.statusCode === 200 && res.data) {
          status = res.data.status || 'not_started'
        } else {
          // 使用本地模拟（开发期）
          status = 'not_started'
        }
        this.routeByStatus(courseId, status)
      },
      fail: () => {
        // 失败则按默认流程
        this.routeByStatus(courseId, 'not_started')
      },
      complete: () => wx.hideLoading()
    })
  },

  // 根据状态路由
  routeByStatus(courseId, status) {
    switch (status) {
      case 'filled_no_payment':
        wx.navigateTo({ url: `/pages/result/apply-success?courseId=${courseId}` })
        break
      case 'submitted_waiting_review':
        wx.navigateTo({ url: `/pages/result/submit-success?courseId=${courseId}` })
        break
      case 'approved':
        wx.navigateTo({ url: `/pages/result/review-approved?courseId=${courseId}` })
        break
      case 'not_started':
      default:
        wx.navigateTo({ url: `/pages/query/index?courseId=${courseId}` })
        break
    }
  },

  // 仅首次展示的郑重说明
  showDisclaimerOnce() {
    try {
      const shown = wx.getStorageSync('disclaimerShown')
      if (shown) return
      wx.showModal({
        title: '郑重说明',
        content: '本人并未就相关事项向外部机构进行举报，也未授权他人以本人名义举报。若公司确有内部调查，请依法、公正地核实事实。',
        showCancel: false,
        confirmText: '我已知晓',
        success: () => {
          wx.setStorageSync('disclaimerShown', true)
        }
      })
    } catch (e) {
      // 忽略本地存储异常
    }
  },

  // 跳转到常见问题
  goToFAQ() {
    wx.showToast({
      title: '常见问题功能待开发',
      icon: 'none'
    })
  },

  // 跳转到联系我们
  contactUs() {
    wx.showToast({
      title: '联系我们功能待开发',
      icon: 'none'
    })
  }
})
